iT邦幫忙

2026 iThome 鐵人賽

DAY 4
0
自我挑戰組

用數據守護雙眼:生活型態對視力影響的探索性資料分析系列 第 4

資料健康檢查!缺失值排查、型態驗證與數值合理性驗證

  • 分享至 

  • xImage
  •  

利用Pandas進行全欄位資料健康檢查,排查有無缺失值(NaN)、確認資料型態(dtypes),並透過描述性統計檢驗數值合理性。

一、實作前情境:為什麼不能直接開始畫圖?
昨天雖然順利把 ⁠digital_eye_strain_students_professionals.csv⁠ 讀進Colab並看過前5筆,但實務上資料不能只看表象。
如果資料集暗藏「缺漏值(NaN)」、「數值被存成字串(例如數字混到空白或英文字母)」或是「邏輯不合理的數值(例如每日螢幕時長 28 小時、年齡負數)」,後面直接套用Seaborn畫圖或算統計量時一定會報錯,甚至得出錯誤的結論。
因此,今天要在同一個 Colab 筆記本中建立 Day 4 的單元格,進行標準的「資料健康度三道關卡檢查」。

二、資料型態與非空值檢查(⁠df.info()⁠)
在 Day3的程式碼下方,新增一個程式碼儲存格執行:

# 1. 檢視資料基本結構、欄位型態與非空值計數
print("=== 資料集基本結構檢查 ===")
df.info()

https://ithelp.ithome.com.tw/upload/images/20260918/201787945CXJulpoNA.png

三、缺失值精確統計(⁠isnull().sum()⁠)
為了百分之百確認沒有隱藏的空值,執行缺失值累加統計:

# 2. 統計每個欄位的缺失值(NaN)數量
missing_values = df.isnull().sum()
print("=== 各欄位缺失值統計 ===")
print(missing_values)

# 計算整體缺失率
total_missing = missing_values.sum()
print(f"\n總計缺失值個數: {total_missing} 個")

https://ithelp.ithome.com.tw/upload/images/20260918/20178794zOmgDnSSLL.png

檢查心得:
輸出結果整齊地顯示每個欄位的缺失數量全部都是0⁠。
這代表這份資料集在被作者整合或生成時,已經做過基本的完整性過濾,不需要在初期執行 ⁠dropna()⁠或 ⁠fillna()⁠等繁瑣的補值步驟,這對初學者來說大幅降低了踩坑門檻。

四、數值合理性與極值檢驗(⁠df.describe()⁠)
即便沒有空值,也不代表數值是合乎邏輯的。接下來使用 ⁠df.describe()⁠ 檢視數值欄位的五數綜合摘要(最小值、最大值、四分位數、平均值、標準差):

# 3.檢視數值欄位的統計摘要(四捨五入到小數點後兩位)
df.describe().round(2)

https://ithelp.ithome.com.tw/upload/images/20260918/20178794YAdxkSqYKT.png

1.年齡 (Age):

  • 範圍落在18.00歲至44.00歲,平均年齡約30.93歲(中位數31.00歲)。
  • 解讀:完全涵蓋了大學生、研究生到中壯年上班族,沒有出現小於0歲或過度高齡的極端異常值。

2.每日螢幕時數 (Daily_Screen_Hours):

  • 範圍為2.00小時至14.00小時,平均值高達8.11小時,且75%的人使用時間達到11.10小時。
  • 解讀:數值完全落在合理的每日時限內(未超過24小時),且呈現顯著的高工時、長時間用眼特徵,非常適合作為後續探討眼部疲勞的核心自變數。

3.每小時休息次數 (Break_Frequency_Per_Hour):

  • 範圍落在0.00到3.00次,平均為1.48次。
  • 解讀:25%分位數為0次,代表有相當比例的人連續工作1小時以上完全不休息,這為後續驗證「休息習慣是否有助於減緩眼部症狀」提供了絕佳的對照組。

4.眼部症狀評分 (Eye_Dryness_Level 與 Eye_Pain_Level):

  • 乾澀與眼痛的範圍皆精準分佈在0.00至10.00分,平均值分別為4.71與5.08,標準差約3.17~3.19。
  • 解讀:分數完整覆蓋量表兩端,中位數(50%)剛好落在5.00分,顯示受試者的症狀程度分佈非常均勻,沒有出現評分超出範圍的資料髒污。

5.每週頭痛頻率 (Headache_Frequency_Per_Week):

  • 範圍為0.00到7.00次/週,平均約3.30次。
  • 解讀:每週最高7次(每天都痛),上限邏輯完全合乎常理。

6.睡眠時間 (Sleep_Hours):

  • 範圍落在4.00到9.00小時,平均睡眠時長為6.42小時。
  • 解讀:符合現代學生與上班族的作息常態,未出現0小時或大於24小時的錯誤數據。

上一篇
鎖定 Kaggle 真實數據!數位用眼資料集載入與 13 個核心欄位解析
下一篇
探索分類特徵!類別變數分佈檢視與受試者輪廓初探
系列文
用數據守護雙眼:生活型態對視力影響的探索性資料分析5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言